package com.zwj.se.thread;

/**
 * 线程组统一异常处理
 * @author 张文接
 * @version 1.0
 * @createTime 2024/8/22 15:52
 */
public class Demo3 {
    public static void main(String[] args) {
        //重写线程组的统一异常处理
        ThreadGroup threadGroup = new ThreadGroup("group1") {
            //继承ThreadGroup并重新定义以下方法
            //当线程成员抛出unchecked exception 会执行此方法
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                System.out.println(t.getName() + ": " + e.getMessage());
            }
        };

        //创建一个线程，并设置为线程组为[group1]
        Thread thread = new Thread(threadGroup, new Runnable() {
            @Override
            public void run() {
                throw new RuntimeException("测试异常");
            }
        });
        thread.setName("线程1");
        //执行线程，查看其异常处理
        thread.start();
    }
}
